package com.warren.beans.factory.config;

import com.warren.error.BeansException;
import com.warren.beans.factory.ConfigurableListableBeanFactory;

/**
 * @author warren
 * @create 2021-08-19 20:06
 * @Description  允许自定义修改 BeanDefinition 属性信息
 * 允许在Bean  对象注册后但未实例化之前，对  Bean  的定义信息  BeanDefinition  执
 * 行修改操作。
 */
public interface BeanFactoryPostProcessor {
    /**
     * 在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修
     改 BeanDefinition 属性的机制
     *
     * @param beanFactory
     * @throws BeansException
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
